/**	
 * <br>
 * Copyright 2011 Chuan. All rights reserved.<br>
 * <br>			 
 * Package: com.chuan.mantu.utils <br>
 * FileName: FileUtil.java <br>
 * <br>
 * @version
 * @author javacyc@qq.com
 * @created 2012-11-20
 * @last Modified 
 * @history
 */

package com.chuan.mantu.utils;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import com.chuan.mantu.vo.Pic;
import com.chuan.mantu.vo.PicRecord;

/**
 * {文件处理类}
 *  
 *  @author javacyc@qq.com
 *  @created 2012-11-20 下午01:46:46
 *  @lastModified       
 *  @history           
 */

public class FileUtil {

	/**
	 * 
	 *  ｛获取当前文件夹下的最新N张历史图片｝
	 *  @param file 文件夹
	 *  @param category 类别
	 *  @return ArrayList<Pic>
	 *  @author javacyc@qq.com
	 *  @created 2012-11-20 下午01:49:16
	 *  @lastModified       
	 *  @history
	 */
	public static ArrayList<Pic> getHisPicArrayList(File file,String category){
		ArrayList<Pic> lp = new ArrayList<Pic>();
		List<File> lf = new ArrayList<File>();
		final PicRecord picRecord = ShareObj.INSTANCE.getPicRecordMap().get(category);
		lf = Arrays.asList(file.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				if(FileUtil.getPicId(pathname.getName()) < picRecord.getMinPid()){
					return true;
				}
				return false;
			}
		}));
		Collections.sort(lf, new FileSorter());
		int i = 0;
		for(File picFile : lf){
			Pic pic = new Pic();
			pic.setName(picFile.getName());
			lp.add(pic);
			i ++;
			//记录下加载的最大一张图片相关信息
			if(i == 1){
				PicRecord pr = new PicRecord();
				pr.setMaxPid(getPicId(pic.getName()));
				ShareObj.INSTANCE.getPicRecordMap().put(category, pr); 
				continue;
			}
			//记录下加载的最小一张图片相关信息
			if(i == Const.PIC_DISPLAY_NUM){
				ShareObj.INSTANCE.getPicRecordMap().get(category).setMinPid(getPicId(pic.getName()));
				break;
			}
		}
		return lp;
	}
	
	
	
	/**
	 * 
	 *  ｛获取当前文件夹下的最新N张图片｝
	 *  @param file 文件夹
	 *  @param category 类别
	 *  @return ArrayList<Pic>
	 *  @author javacyc@qq.com
	 *  @created 2012-11-20 下午01:49:16
	 *  @lastModified       
	 *  @history
	 */
	public static ArrayList<Pic> getPicArrayList(File file,String category){
		ArrayList<Pic> lp = new ArrayList<Pic>();
		List<File> lf = Arrays.asList(file.listFiles());
		Collections.sort(lf, new FileSorter());
		int i = 0;
		for(File picFile : lf){
			Pic pic = new Pic();
			pic.setName(picFile.getName());
			lp.add(pic);
			i ++;
			//记录下加载的最大一张图片相关信息
			if(i == 1){
				PicRecord picRecord = new PicRecord();
				picRecord.setMaxPid(getPicId(pic.getName()));
				ShareObj.INSTANCE.getPicRecordMap().put(category, picRecord); 
				continue;
			}
			//记录下加载的最小一张图片相关信息
			if(i == Const.PIC_DISPLAY_NUM){
				ShareObj.INSTANCE.getPicRecordMap().get(category).setMinPid(getPicId(pic.getName()));
				break;
			}
		}
		return lp;
	}
	
	
	/**
	 * 
	 *  ｛根据路径截取文件名称｝
	 *  @param filePath /mnt/sdcard/net.91sport.mantu/pic/yinhun/45.jpg
	 *  @return 45.jpg
	 *  @author javacyc@qq.com
	 *  @created 2012-11-27 下午02:16:04
	 *  @lastModified       
	 *  @history
	 */
	public static String getFileName(String filePath){
		return filePath.substring(filePath.lastIndexOf(Const.PATH_BACKLASH) + 1);
	}
	
	/**
	 * 
	 *  ｛根据图片名称截取ID｝
	 *  @param picname id.jpg
	 *  @return id--int
	 *  @author javacyc@qq.com
	 *  @created 2012-12-21 下午02:46:49
	 *  @lastModified       
	 *  @history
	 */
	public static int getPicId(String picname){
		return Integer.parseInt(picname.substring(0,picname.lastIndexOf(".")));
	}
	
}